import request from '@/utils/request'

// ==================== 任务管理 ====================

// 分页查询任务
export function getTaskPage(params) {
  return request({
    url: '/task/page',
    method: 'get',
    params
  })
}

// 获取任务详情
export function getTaskDetail(id) {
  return request({
    url: `/task/${id}`,
    method: 'get'
  })
}

// 创建任务
export function createTask(data) {
  return request({
    url: '/task',
    method: 'post',
    data
  })
}

// 更新任务
export function updateTask(id, data) {
  return request({
    url: `/task/${id}`,
    method: 'put',
    data
  })
}

// 删除任务
export function deleteTask(id) {
  return request({
    url: `/task/${id}`,
    method: 'delete'
  })
}

// 批量删除任务
export function deleteBatchTask(ids) {
  return request({
    url: '/task/batch',
    method: 'delete',
    data: ids
  })
}

// 开始任务
export function startTask(id) {
  return request({
    url: `/task/${id}/start`,
    method: 'put'
  })
}

// 暂停任务
export function pauseTask(id) {
  return request({
    url: `/task/${id}/pause`,
    method: 'put'
  })
}

// 完成任务
export function completeTask(id, actualHours, completionNote) {
  return request({
    url: `/task/${id}/complete`,
    method: 'put',
    params: { actualHours, completionNote }
  })
}

// 取消任务
export function cancelTask(id, reason) {
  return request({
    url: `/task/${id}/cancel`,
    method: 'put',
    params: { reason }
  })
}

// 分配任务
export function assignTask(taskId, assigneeId, assignmentType, rolePermission, note) {
  return request({
    url: `/task/${taskId}/assign`,
    method: 'post',
    params: { assigneeId, assignmentType, rolePermission, note }
  })
}

// 获取我的任务
export function getMyTasks(params) {
  return request({
    url: '/task/my',
    method: 'get',
    params
  })
}

// 获取任务统计
export function getTaskStatistics(params) {
  return request({
    url: '/task/statistics',
    method: 'get',
    params
  })
}

// ==================== 任务模板管理 ====================

// 分页查询任务模板
export function getTaskTemplatePage(params) {
  return request({
    url: '/task-template/page',
    method: 'get',
    params
  })
}

// 获取任务模板详情
export function getTaskTemplateDetail(id) {
  return request({
    url: `/task-template/${id}`,
    method: 'get'
  })
}

// 创建任务模板
export function createTaskTemplate(data) {
  return request({
    url: '/task-template',
    method: 'post',
    data
  })
}

// 更新任务模板
export function updateTaskTemplate(id, data) {
  return request({
    url: `/task-template/${id}`,
    method: 'put',
    data
  })
}

// 删除任务模板
export function deleteTaskTemplate(id) {
  return request({
    url: `/task-template/${id}`,
    method: 'delete'
  })
}

// 从模板创建任务
export function createTaskFromTemplate(templateId, data) {
  return request({
    url: `/task-template/${templateId}/create-task`,
    method: 'post',
    data
  })
}

// ==================== 任务分类管理 ====================

// 获取分类树
export function getTaskCategoryTree() {
  return request({
    url: '/task-category/tree',
    method: 'get'
  })
}

// 获取分类详情
export function getTaskCategoryDetail(id) {
  return request({
    url: `/task-category/${id}`,
    method: 'get'
  })
}

// 创建分类
export function createTaskCategory(data) {
  return request({
    url: '/task-category',
    method: 'post',
    data
  })
}

// 更新分类
export function updateTaskCategory(id, data) {
  return request({
    url: `/task-category/${id}`,
    method: 'put',
    data
  })
}

// 删除分类
export function deleteTaskCategory(id) {
  return request({
    url: `/task-category/${id}`,
    method: 'delete'
  })
}

// ==================== 任务评论管理 ====================

// 获取评论树
export function getTaskCommentTree(taskId) {
  return request({
    url: '/task-comment/tree',
    method: 'get',
    params: { taskId }
  })
}

// 创建评论
export function createTaskComment(data) {
  return request({
    url: '/task-comment',
    method: 'post',
    data
  })
}

// 删除评论
export function deleteTaskComment(id) {
  return request({
    url: `/task-comment/${id}`,
    method: 'delete'
  })
}
